Skip to content

Usage report calculates negative endpoint throughput after queue table deletion#5516

Open
jasontaylordev wants to merge 1 commit into
masterfrom
fix/postgresql-throughput
Open

Usage report calculates negative endpoint throughput after queue table deletion#5516
jasontaylordev wants to merge 1 commit into
masterfrom
fix/postgresql-throughput

Conversation

@jasontaylordev
Copy link
Copy Markdown
Contributor

Symptoms

Usage reports can contain negative throughput values for an endpoint/queue.

This can happen when a queue table is deleted between throughput snapshots.

Who's affected

Users generating usage reports where queue tables may have been deleted during the reporting period.

Root cause

Throughput is calculated by comparing two snapshots taken an hour apart.

When a queue table is deleted, the end-of-hour total is not set and defaults to 0, causing the calculation to produce a negative throughput value.

Confirmed workarounds

None

Original bug report While calculating throughput, when a queue table is deleted, we see a negative throughput entry recorded in the usage report for the day.

This happens because we take two snapshots, an hour apart, and then use this to figure out how many messages have been processed:

totalThroughputForHour = totalMessagesEndOfHour - totalMessagesStartOfHour

When a table gets deleted, the sequence no longer exists and querying it throws a PostgreSQL 42P01 exception. This exception is caught and the end-of-hour total is left unset, defaulting to 0. This ends up looking like this:

totalThroughputForHour = 0 - totalMessagesStartOfHour

That is always going to be a negative number, and one that is not representative of the throughput in that hour.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant